package com.xc.file.config;

import com.xc.file.dto.DownloadDto;
import com.xc.file.info.FileInfo;
import com.xc.file.info.FileTypeInfo;
import com.xc.file.info.FolderInfo;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.Hashtable;
import java.util.List;
import java.util.Map;


/**
 * <p>项目名称: Stars</p>
 * <p>描述: 项目配置类</p>
 * <P>创建人: 小程</p>
 * <P>创建人邮箱: 779943476@qq.com</p>
 * <p>创建时间: 2019/7/2</p>
 *
 * @version v1.0
 */
@Data
@Component
@ConfigurationProperties(prefix = "xc.file")
public class Constants {

    /**
     * 本程序的程序id
     */
    private String appId;

    /**
     * 本程序的秘钥
     */
    private String appSecret;

    /**
     * 验证用的密钥
     */
    private String secret;

    /**
     * 目录信息
     */
    private List<FolderInfo> folderPaths;

    /**
     * 上传下载文件缓存大小
     */
    private int cacheSize = 1048576;

    /**
     * 上传后文件的后缀
     */
    private String suffix = ".xc";

    /**
     * 上传中的文件后缀
     */
    private String uploadSuffix = ".upload";

    /**
     * 本机地址
     */
    private String localUrl;

    /**
     * 开启通知
     */
    private Boolean openNotice = false;

    /**
     * 续传文件信息
     */
    private Map<String, FileInfo> fileInfoMap = new Hashtable<>();

    /**
     * 文件下载信息
     */
    private Map<String, DownloadDto> fileDownloadMap = new Hashtable<>();

    /**
     * 每次上传文件大小
     */
    private Long renewalSize = 10485760l;

    /**
     * 下载类型配置
     */
    private List<FileTypeInfo> fileTypes = new ArrayList<>();
}
